|
Communicating Sequential Processes(CSP)とは、並行性に関するプロセス計算の理論のひとつである〔 * この書籍に関連したリンクはこちら にある。全文は PS 形式かPDF 形式で Bill Roscoe のこちら のリストからダウンロード可能。〕。プログラミング言語Occamにも影響を与えた〔, INMOS document 72 occ 45 03〕〔。 CSPは1978年、アントニー・ホーアが最初に考案し〔 〕、その後かなり改良されていった。CSPは様々なシステムにおける並行性を記述し検証する、形式仕様記述ツールとして産業で利用されてきた。たとえば、T9000トランスピュータやセキュアな電子商取引システムなどの例がある。理論としても、応用範囲を広げる(より大規模なシステムの解析に使えるようにする)などの研究が行われている。 == 歴史 == ホーアの1978年の論文で提示されたCSPは、プロセス計算というよりも本質的には並行プログラミング言語であった。後のCSPとは構文が著しく異なり、数学的に定義された意味論を持っておらず〔 * この本はオックスフォード大学コンピュータ研究所の Jim Davis が改版しており、新版は Using CSP というサイトでPDF形式でダウンロード可能。〕、無制限の非決定性を表現することはできなかった。本来のCSPでは、並列に動作する有限個の逐次プロセスが同期式のメッセージパッシングで相互に通信するという形式でプログラムを記述していた。その後のCSPとは対照的に、各プロセスには名前が付けられ、メッセージには送信元と送信先の名前が指定されている。たとえば次のプロセス COPY = *west?c → east!c は、 west という名前のプロセスから文字を繰り返し受信し、その文字を east という名前のプロセスに送信する。並列合成|| X::COPY || east::ASSEMBLE では、 west という名前を DISASSEMBLE プロセスに割り当て、X という名前を COPY プロセスに割り当て、east という名前を ASSEMBLE プロセスに割り当て、これらを並行に実行する〔。その後、ホーアは Stephen Brookes や Bill Roscoe らと共に理論面の改良に取り組み、CSPをプロセス代数的にしていった。この方向性は、同時期にロビン・ミルナーが行っていた Calculus of Communicating Systems(CCS)の研究と相互に影響しあっている。CSPの理論面は1984年に発表され、1985年に出版されたホーアの著書 ''Communicating Sequential Processes''〔 で一般に知られるようになった。2006年9月現在でも、Citeseer によればこの本は計算機科学分野での引用回数第3位 とされている(ただし、サンプリング方式であるため信頼性は高くない)。このホーアの著書以降、CSPの理論は若干変更されただけである。変更のほとんどは、CSPプロセス解析と検証のための自動化ツールの出現に対応するものである。Roscoe の ''The Theory and Practice of Concurrency''〔 ではこの新たなCSPが解説されている。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Communicating Sequential Processes」の詳細全文を読む スポンサード リンク
|